翻译摘录自:http://mvdirona.com/jrh/talksandpapers/jamesrh_lisa.pdf

  • 本文总结了微软MSN和Windows Live在线服务的多年设计与实践经验
  • 微软的自动化运维和监视工具:Autopilot http://research.microsoft.com/pubs/64604/osr2007.pdf | http://leoncom.org/?p=650735
  • 系统设计3大原则
    1. 预见失败。系统组件随时会崩溃或停止运行,相关依赖的组件会随时故障或停止,网络连接会故障,磁盘空间会不足。优雅的处理所有这些故障。
    2. 保持简单。解耦,避免(组件)相互依赖。
    3. 自动化。自动化的过程是可以测试、修复的,所以最终会是可依赖的。
  • 运维友好的通用基础原则:
    1. 设计时为故障做好准备
    2. 冗余和故障恢复
    3. 廉价硬件组合
    4. 单一版本软件
    5. 多租户模型
  • 运维友好的一些专有原则
    1. 快速健康度测试
    2. 完整开发环境
    3. 对底层组件零信任
    4. 不要在不同组件中构建相同功能模块
    5. 集群间不要相互影响
    6. 允许(罕见)紧急故障的人工排查。尽管自动化是重要原则,但总有一些故障还是需要依赖人工参与处理,但要尽可能降低人工参与故障处理的机会
    7. 在各个层次上加强访问控制
    8. 服务分区
    9. 理解网络(拓扑、负载)设计
    10. 分析吞吐量和延迟
    11. 把运维工具当作服务的一部分
    12. 理解(用户)访问(系统)模式/规律
    13. 版本化一切
    14. 保留最近一次发布的单元/功能测试集合
    15. 避免单点故障
    16. 自动化管理和配置

(以上p233-p236 done)

(p237-p244 TODO)

返回顶部